home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
telecomm
/
uemail.arc
/
UEMAIL.KEY
< prev
next >
Wrap
Text File
|
1987-01-19
|
22KB
|
427 lines
Time: 10:36:56 am
Uemail
Uemail is an emacs-like full-screen editor for the Atari-ST computer
equipped with a color monitor. It supports all of the major commands
offered by microEmacs version 30, plus some extensions that make its
interface closer to that used by GNU_EMACS. In fact, uemail is designed to
work in tandem with GNU_EMACS on a remote computer. When the program is
connected to the serial line, all of the function keys and the number pad
keys send the same commands as they do from within uemail, and the defined
keyboard macros (macros triggered by the accent grave key) are also sent
accross the line. This allows you to set up special function key definition
files and macro definition files to use with a remote emacs. In addition
to the emacs editing commands, uemail has a complete terminal connect mode
which supports kermit protocol for 7-bit transfers between two computers.
This ability allows the editor to work with text from a remote system and
to transfer it back to that system when done. For remotes that do not
support the kermit protocol there are log and transfer commands which use
the ST's flow control (settable from within the terminal mode) to transfer
text without dropping characters (provided that the remote supports one of
the ST's handshaking protocols). For those who do not use the EMULATOR.ACC
desk accessory, uemail will set the baud rate while in connect mode. At
the beginning of the connect session, the baud rate defaults to 1200 bps,
but it can be reset to 300, 9600, or 19200 bps. When uemail exits from
terminal mode, it saves the terminal screen. When it returns to terminal
mode, it rewrites that screen placing the cursor at its previous position.
For the text editor programmer, uemail has a built-in write macro command
which translates uemail keyboard macros into C source code, allowing quick
prototyping of new functions to be added to the program. Additional macro
commands store, save, and recover keyboard macros in their keycode form,
allowing the user to design macro files by simply recording keystrokes for
functions. For programmers uemail provides a basic `cc' command designed
to drive the Alcyon C compiler and the DRI linker/loader. The files
shell.c and emcc.c contain the code for cc and for the shell command, which
let you run TOS applications from within the editor. The cc command expects
for drive M: to be a temporary ram disk and drive E: to contain source.
These assumptions are hardwired into the source. However, if the file
cc.ini exists on the default drive when uemail starts up, the program will
read that file and install its values for the source, include, temporary,
symbols, and compiler directories. Alternatively, the user can load a
command file after the editor has started. The following is a sample
cc.ini file:
/* cc.ini file for cc.ttp and uemail.ttp */
source=e:\ /* C, lnk, and 68K files */
include=d:\stdlib.h\ /* headers */
temp=m:\ /* temporary files, o files, and final prg */
symb=c:\bin\ /* as68symb.dat */
bin=c:\bin\ /* compilers, assembler, linker, and loader */
tdrive=m /* temp drive drive designation */
home=c:\uemail\ /* where it all began */
root=c:\ /* boot directory */
assembly=d:\assembly.s\ /* assembly sources */
etc=c:\util\ /* utility programs */
comm=c:\comm\ /* communications */
shell=c:\util\pcommand.prg /* shell program */
syslib=c:\bin\ /* library directory */
lnkfile=xemacs /* filename of link command file */
float= /* flag for floating point -f, -e or nil*/
dolink=1 /* if 1, call linker after compiling file[s] */
delete=1 /* delete I, S, 68K files? 1==YES */
/* function key bindings for uemail.ttp */
F1=setmark /* sets the mark */
F2=listbuffers /* lists current buffers */
F3=filename /* change current filename */
F4=writeregion /* write text between point and mark to file */
F5=fileinsert /* insert file at point */
F6=fileread /* read file into current buffer */
F7=filevisit /* visit (find) a file */
F8=filewrite /* write out buffer to named file */
F9=filesave /* save current buffer if changed */
F10=quickexit /* save all changed buffers and exit */
/* Number pad bindings for uemail.ttp */
N(=backword /* backward word */
N)=forwword /* forward word */
N/=grtw /* globally remove trailing whitespace */
N*=retversion /* return current version to message line */
N7=gotobol /* goto beginning of line */
N8=gotoeol /* goto end of line */
N9=unkncom /* unknown command */
N-=pageback /* back by one text page (60 lines default) */
N4=backsent /* goto beginning of sentence */
N5=forwsent /* goto end of sentence */
N6=unkncom /* unknown */
N+=pageforw /* forward by one text page */
N1=gotbop /* goto beginning of paragraph (blank line) */
N2=goteop /* goto end of paragraph (blank line) */
N3=unkncom /* unknown */
N.=forwdel /* delete character under cursor */
NENTER=indent /* newline and indent */
The cc.ini file is read at startup, but the values can be changed after
initialization using the commfil command (CTLX-CTRL-E). Each line must be
formatted as above. The word before the equal sign is the `alias' name
used by the program, and the line to the left of the equal sign is the
actual path name assigned to the aliased variable. There can be no
embedded blanks or tabs in a name or alias, but comments may appear on any
line as long as there is at least one space or tab character between the
end of the path and the beginning of the comment. No special comment
characters are necessary although using standard comment markers like those
above help to make the comments more readable. The order of definitions is
unimportant, and blank or extra lines are ignored as are aliasses for which
there are no internal matches to be found (this is what allows both the
cc.prg and uemail to use the same startup file without problems).
Typing `cc' after issuing the shell command (CTRL-C) and the filename at
the command line prompt invokes the compiler. To compile the file
e:test.c, you simply type test at the command line prompt. The output file
will be on drive M:. If the variable dolink equals 1, then the linker will
be loaded and told to get its command from the file defined by linkfile.
(The linkfile must be on the source directory and must have an .LNK extent;
additionally, because the link68 program cannot handle filenames longer
than 13 letters, including the path and drive, your filename plus source
directory should be no more than 9 characters long.)
The set path command and all the file commands also use the alias table. If
at the command's prompt you type a line which begins with a `~', these
commands look up the word after the ~ and test it against the known
aliases. If the word match matches a known alias, the string associated
with that alias is copied into the filename. Thus if "temp=c:\files\temp"
is in the cc.ini file at startup, typing the read file command ^X^R and
asking for the file ~temp\test.i will read in the file c:\files\temp\test.i
(note that the `\' character is necessary, and the `~' must be the first
character on the line).
Uemail also supports writers. In addition to the useful macro function,
uemail provides sentence, paragraph, and page movement commands. It
provides two punctuation movement commands, forward to next punctation and
backward to previous puntuation, useful for moving to the next comma or
quotation mark in a text. Uemail extends the usual microemacs on-screen
editing features, adding an indent column with the ability to define an
indent prefix. Unlike other versions of microemacs, uemail's fill
paragraph command leaves the cursor inside the paragraph in the same spot
where it was when the command was issued. There are line-based commands for
formatting texts. The flushleft, flushright, center, transpose words, and
globally delete trailing whitespace all deal with text appearance. The
indent subsequent newline same as this lets you open a line